﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Windows.Forms;
using System.Drawing;
using System.Text.RegularExpressions;

namespace FrbaCommerce
{
    class FuncionesComunes
    {
        string mensajeCampoVacio;

        public Boolean validacionMail(string mail)
        {
            //Metodo para validar el mail
            string expresion;
            expresion = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
            if (Regex.IsMatch(mail, expresion))
            {
                if (Regex.Replace(mail, expresion, string.Empty).Length == 0)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return false;
            }
        }


        public String getFormatoFecha(DateTime fecha)
        {
            String fechaBD = fecha.Year.ToString();
            fechaBD += (fecha.Month.ToString().Length == 1) ? ("0" + fecha.Month.ToString()) : (fecha.Month.ToString());
            fechaBD += (fecha.Day.ToString().Length == 1) ? ("0" + fecha.Day.ToString()) : (fecha.Day.ToString());
            fechaBD += " 00:00:00.000";

            return fechaBD;
        }

        public Boolean validacionFecha(string fechaString, out DateTime fecha)
        {
            return DateTime.TryParse(fechaString, out fecha);
        }

        public TextBox colorearTextBox(TextBox textBox, string mensaje)
        {
            //Metodo para colorear text box
            if (mensaje != "")
            {
                textBox.BackColor = Color.Red;
            }
            else
            {
                textBox.BackColor = Color.White;
            }
            return textBox;
        }

        public MaskedTextBox colorearTextBox(MaskedTextBox textBox, string mensaje)
        {
            //Metodo para colorear text box
            if (mensaje != "")
            {
                textBox.BackColor = Color.Red;
            }
            else
            {
                textBox.BackColor = Color.White;
            }
            return textBox;
        }

        public ComboBox colorearComboBox(ComboBox comboBox, string mensaje)
        {
            //Metodo para colorear Combo Box
            if (mensaje != "")
            {
                comboBox.BackColor = Color.Red;
            }
            else
            {
                comboBox.BackColor = Color.White;
            }
            return comboBox;
        }

        public string verificarCampoVacio(TextBox textBox, string tipo)
        {
            //Metodo para verificar el campo vacio
            mensajeCampoVacio = "";
            if (String.IsNullOrEmpty(textBox.Text))
            {
                mensajeCampoVacio = "- " + tipo + " \n";
            }
            return mensajeCampoVacio;
        }

        public string verificarCampoVacio(MaskedTextBox textBox, string tipo)
        {
            //Metodo para verificar el campo vacio
            mensajeCampoVacio = "";
            if (!textBox.MaskFull)
            {
                mensajeCampoVacio = "- " + tipo + " \n";
            }
            return mensajeCampoVacio;
        }

        public string verificarComboVacio(ComboBox comboBox, string tipo)
        {
            //Metodo para verificar el combo sin ningún item seleccionado
            mensajeCampoVacio = "";
            if (comboBox.SelectedIndex <= 0)
            {
                mensajeCampoVacio = "- " + tipo + " \n";
            }

            return mensajeCampoVacio;
        }

        public string verificarComboVacio2(ComboBox comboBox, string tipo)
        {
            //Metodo para verificar el combo sin ningún item seleccionado
            mensajeCampoVacio = "";
            if (comboBox.SelectedItem == null )
            {
                mensajeCampoVacio = "- " + tipo + " \n";
            }

            return mensajeCampoVacio;
        }

        private ComboBox vaciarComboBox(ComboBox comboBox)
        {
            //Metodo para vaciar combo box
            comboBox.Items.Clear();
            return comboBox;
        }

        public void keyPressLetras(KeyPressEventArgs e)
        {
            //Key press letras
            if (Char.IsLetter(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }

        public void keyPressNumeros(KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }

        public void keyPressDecimales(KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (e.KeyChar ==',')
            {
                e.Handled = false;
            }
            else
            {   
                e.Handled = true;
            }
        }

        public void keyPressAlfanumerico(KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsLetter(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }

        public string verificarCampoVacio(NumericUpDown numericUpDown, string tipo)
        {
            //Metodo para verificar el campo con valor 0
            mensajeCampoVacio = "";
            if (numericUpDown.Value == 0)
            {
                mensajeCampoVacio = "- " + tipo + " \n";
            }

            return mensajeCampoVacio;
        }

        public NumericUpDown colorearNumericUpDown(NumericUpDown numericUpDown, string mensaje)
        {
            //Metodo para colorear un numeric up down
            if (mensaje != "")
            {
                numericUpDown.BackColor = Color.Red;
            }
            else
            {
                numericUpDown.BackColor = Color.White;
            }
            return numericUpDown;
        }

        public string ArmarCondicion(string nombreCampo, string contenido)
        {
            string query = " " + nombreCampo + " = '" + contenido + "' ";
            return query;
        }
        public string ArmarCondicion(string nombreCampo, string contenido1, string contenido2)
        {
            string query = " " + nombreCampo + " BETWEEN '" + contenido1 + "' AND " + contenido2 + "' ";
            return query;
        }


       /* public void finalizarPublicaciones()
        {
            DataSet data = new DataSet();
            data.Tables.Add("Consulta");

            ConexionSql conexion = new ConexionSql();

            try
            {
                conexion.Consulta(data, "[ASDF].[FINALIZAR_PUBLICACIONES]");
            }

            catch (Exception ex)
            {
                MessageBox.Show("Problema de conexión con la BD: " + ex.Message);
            }
        }*/
    }
}